{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Sample code for ggtree plots\n",
    "Everytime I have to make a ggtree figure it can take a while to get the figure I want. I often find myself searching through old projects looking for the code I need. Here I'm just going to make some of the common figures I use to save me time in future. It's hosted on github rather than a static page so it can be updated easily with new plots."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<dl class=dl-horizontal>\n",
       "\t<dt>ggplot2</dt>\n",
       "\t\t<dd>TRUE</dd>\n",
       "\t<dt>ggtree</dt>\n",
       "\t\t<dd>TRUE</dd>\n",
       "</dl>\n"
      ],
      "text/latex": [
       "\\begin{description*}\n",
       "\\item[ggplot2] TRUE\n",
       "\\item[ggtree] TRUE\n",
       "\\end{description*}\n"
      ],
      "text/markdown": [
       "ggplot2\n",
       ":   TRUEggtree\n",
       ":   TRUE\n",
       "\n"
      ],
      "text/plain": [
       "ggplot2  ggtree \n",
       "   TRUE    TRUE "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "packages <- c(\"ggplot2\", \"ggtree\")\n",
    "suppressMessages(sapply(packages, require, character.only=T, quietly=T))\n",
    "options(repr.plot.width=5, repr.plot.height=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Clade label and tip points"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n <- 5\n",
    "#random tree\n",
    "tree <- rtree(n)\n",
    "#Random tree associated data\n",
    "tad <- data.frame(seq=tree$tip.label, group=rbinom(n=n, size=1, prob=0.5))\n",
    "\n",
    "#Plot tree\n",
    "ggtree(tree) %<+% tad + \n",
    "#Add tip points, coloured according to data\n",
    "geom_tippoint(aes(colour=as.factor(group)), size=2)+\n",
    "#Set font family to match dios theme\n",
    "geom_cladelabel(node=n+3, label=\"clade\", fontsize=5, family=\"Avant Garde\", angle=90, offset= 0.1, offset.text=0.1) +\n",
    "#Remove axes from tree plot\n",
    "theme(axis.line=element_blank(), axis.text=element_blank(), axis.ticks=element_blank())+\n",
    "geom_tiplab()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table>\n",
       "<thead><tr><th scope=col>seq</th><th scope=col>group</th></tr></thead>\n",
       "<tbody>\n",
       "\t<tr><td>t3</td><td>0 </td></tr>\n",
       "\t<tr><td>t4</td><td>0 </td></tr>\n",
       "\t<tr><td>t1</td><td>0 </td></tr>\n",
       "\t<tr><td>t2</td><td>0 </td></tr>\n",
       "\t<tr><td>t5</td><td>1 </td></tr>\n",
       "</tbody>\n",
       "</table>\n"
      ],
      "text/latex": [
       "\\begin{tabular}{r|ll}\n",
       " seq & group\\\\\n",
       "\\hline\n",
       "\t t3 & 0 \\\\\n",
       "\t t4 & 0 \\\\\n",
       "\t t1 & 0 \\\\\n",
       "\t t2 & 0 \\\\\n",
       "\t t5 & 1 \\\\\n",
       "\\end{tabular}\n"
      ],
      "text/markdown": [
       "\n",
       "| seq | group |\n",
       "|---|---|\n",
       "| t3 | 0  |\n",
       "| t4 | 0  |\n",
       "| t1 | 0  |\n",
       "| t2 | 0  |\n",
       "| t5 | 1  |\n",
       "\n"
      ],
      "text/plain": [
       "  seq group\n",
       "1 t3  0    \n",
       "2 t4  0    \n",
       "3 t1  0    \n",
       "4 t2  0    \n",
       "5 t5  1    "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tad"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Colour branches\n",
    "Note that the internal branches have NA in this example, hence they're grey. Note that the legend defaults to missing so you must set the position."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nFy92Op2mD/7KK6+0traaPiwAIJF0dXVt37596tSpqoOcAgUawFd6j60uKChwuczfzNiKMa0T\nDIVFZP2O8h5FRz17PUnzpo912O1Krg4AVnj77bfvv//+zz77rKSk5IYbbmhtbf3Zz37W1tYm\nIhdeeKHX6120aNFVV12VlZW1f/9+EdmwYcOdd965adMmTdMmT5589913l5Z+df/x5MmTi4qK\nVq5ceXjwBQsWlJeXf/755yKiadozzzzj8/kef/zxLVu2jB079uabb77uuutM/Foo0ABwrL2V\ndSLy2gefvfbBZ6oyPPbDK+dMHaPq6gBgrt///vdXX331hAkTlixZUl1dfeutt2ZnH3U/8b59\n+6699toLL7xw9uzZIvLnP/95/vz5BQUFixcv1jTtxRdfPOuss9544425c+f25XLLly8vLy+/\n7777CgoKXnjhhUWLFlVVVf3bv/2bWV8OBRoAjnXblXN0kdFDclXNAbsc9pmTRiq5NACYrqen\n50c/+lFpaenq1avdbreIfPOb31y4cKHX6z38nE2bNj377LOLFy8WkXA4vGTJktzc3I0bN/b2\n7Ntvv33ixIlLly7dvHlz7/ulJ/f+++/v2rVrxIgRIjJz5syOjo577733xhtvPKa1R4wCDQDH\nSvcm3/UPF6lOAQAJYt26dRUVFQ888EBvexaRBQsWjBkz5sjb1tPT0w+vsigvL9+2bds999xz\nuO9mZWXdfPPNd955Z0VFxdChQ095xblz5/a251633HLLsmXLVq1adfXVV5vyFXGUNwAAACy0\nZ88eERk3btyRDx7zaWFhoc1mO/L548ePP/IJvZ/2/tUpjR49+shPS0pKRGTfvn1Gk58IBRoA\nAAAW6j1H9hj2o9fIeTyew3/Wdf3rz++t18Fg8LiXOOaArWNOHugN0P/jCA5jCQcAqNTa2d3S\n0WOznXpJ38nlpnmcDnbtABCLRo0aJSJlZWUTJ048/OCuXbtO9Pze1Rc7d+68+OKLDz+4fft2\nOWJqORwOH/mSPXv2HLmiunc7jsM2b958eFhTUKABQKULf7oidLy5FqOKsn2v/Hhh/8cBANNN\nnz49JyfnkUceueSSS3p3NX3nnXe2bt16ZOU9UnFx8dixY3/9619/73vfy8jIEJHGxsYnnnhi\n3LhxvQugPR5PWVlZKBTqncZ+8803y8vLj1zysXr16tWrV8+aNUtE/H7/Pffck5ycfN5555n1\nFVGgAUCZsK6HdD0tJWnqyP6eoD66MNOUSABgOq/Xe//9999www0zZsy49NJLa2tr//d//3f2\n7Nnbtm077vNtNttDDz20YMGCqVOnfuc739F1/fnnn6+pqXn22Wd7F3Kcd95599xzzyWXXHLZ\nZZft2bPnmWeeOeecc5qamg6PUFhYeMEFF1x//fU5OTmvvvrq1q1b77777oKCArO+Igo0ACg2\nJCf1v649R3UKALDQ9ddfn5aW9vOf//yBBx6YMmXKq6+++s4779TV1Z3o+RdccMGaNWvuvPPO\np556SkQmT5788ssvHz5I5Sc/+UlHR8dLL7300UcfTZs27Y9//ONnn3326aefHn754sWLi4uL\nH3vssd27d48dO/a3v/3t9ddfb+KXQ4EGgMhVVVU9/fTTx73fpS90EZFRFfXtZmYCgBgTCoWa\nm5vnz59/2WWXHX7w6aefzsv76s23t9566+uvmjZt2ttvv33cAZOSkh566KGHHnroyCffdNNN\nRz5n8eLFvbtKW4ECDQCR6+jo0HXd6/WmpqZGNICWdCjL60syORYAxBK/3z9o0KDFixc/+eST\nvY/U1NS8/vrrd9xxh9pgEaNAA0DkkpKSRGTixInz5s2L4OW6Lq//ZufwPM+pnwoAcSslJWXR\nokW/+c1vgsHgnDlzmpqafvGLXzgcjhtvvFF1tAhRoAGIiCxbtqx3h/ljNgZCFOyp99+w/G9H\nAyTZbYum504bevyb0wEgHj366KNDhgx57rnnXnzxxZycnNNPP/3hhx/OyclRnStCFGgAIiLN\nzc2Wjh8Oh3VdN/EUqBhRW1srIoHA8Tf2PyVNE6/L1h3S27v/9ntLhxbuDvJrDICE4nK57rjj\njuis2Yj4vpS+o0ADEBFJT09vaGiQvx71ZLqWlpZQKPTcc89ZMbhCHSFHil0+2Xlg/vwIR/j9\n4hJTEwEALEeBBhAN8+bN+/LLL7Ozs1UHMdneus6V63ZNK6EEA8AAQoEGEA2lpaWH9+9MJN59\nNY9/UDUrJbItOAAAccmS92oBAACARMUMNABELhAKi8gnu6rue2mt6iwKpCW7b7zwdKeduRgA\nAwsFGgAiFwqFReSLg41fHGxUnUUBm0279OzRBZnsuAdgYKFAA0DkzhxT+D9LLhIRm6apzqJA\nps+dm56iOgWAWLe5Jryt3vzdOc8fai/wqvneS4EGgH4ZNyTRthYBAHPtbAj/aW+E++WfxKRc\nm6oCzcI1AAAAwAAKNAAAAGAASzgAmGPfwYY/bygbXpClOogl8rNSJ44YpDoFAMQlXfQoHK8d\nTRRoAOb4l0derqhpUp3CKg67bcMzS+3s1wYAEdBFrCjQ6ko5BRrxqqys7LXXXktNTXU4+N/Y\nBLW1tSLSnxmCIXkZFTVNNy442+tJMi9XrBhRlE17BoBI6bpu/i4cCtE8EK8OHDjg9/v9fr/q\nIAlF07Tq6mqn0xnBa8OhoIhcef6U3Ayf2bkAAPFM162ZLWYGGjAoIyNDRC699NJJkyapzpII\nli1btnfvXl3X//u//zuyEbZUOEVsLe2dFGgAwJF0a2agFa6qpkAD+Jvi4uLCwsLIXvvZ2zv2\nVLempiSbGwkAEPcsmoFW16Ap0AD+5sorr0xKinAF85+2NX1R1dzW2e1JimQFyEDjSXI6HXbV\nKQAgKnTRwyzhAICv+eLLOhG5+Ee/Vh0kPgzJy3zr4X9WnQIAosGiJRzMQAOIexfNGL/yo60l\nQ/PVHKsab0YW5aiOAADRYtVNhMpQoAGY45ZvzbrlW7NUpwAAxCCLtrFjCQcAAAASkkUHqajD\nuQAAAACwkK7ruh624KNPpbynpycrK6uhocHEr4gZaAAAAFhKzRpov9+/du3ap556qrGx0dyR\nKdAAYILbX/2ivM6f6mFnuhPSNO28MRnXnJGvOgiAqNPVrIF+9NFHf/WrX/X09Jh+YQo0AJig\nvMHfGQxp3apzxLamzqDqCAAUSHJo+d6j5hcau0I9IWNz0l6Xzes6au2x7VS7Pi1dunTp0qUb\nN26cOnWqoWudEgUaAEyQmezURF65cYLqIAAQc9Lc2tlD3Ec+8v6+joaAsTnpolTnuNyjjvpy\naMr2TaVAAxAR6ejoEJHly5fbbNxbHIm6tnFBjfUbAHAcNW3BFZ+39HOQnTX+nTX+Ix+ZVOA+\n0ZOtRoGG+P3+5ubmiA9wVqWzs1N1hIQSCoVEpLy8XHWQeNWTOVbnVw8AOC6r1kArQ4GGPPnk\nk83NzapTRGjPnj2TJk1SnSIR3HLLLR0dHQ4H3xMi9E8vfcECXwA4AWt24eAobyjkcrlEZMqU\nKZq6tUQRqKqqqq6uzs3NVR0kQdhsNp/PpzpFHPMHwz3B8CPvlKsOYpjHaf92aX5milN1EAAJ\nS9elj3s2GxuWkwihkMfjEZH58+fb7fG0gnP9+vXV1dWpqamqgwAiIl3d4UBIf/PzOtVBIjEm\nP2X26EzVKQAkMF1YwgEAOMaT3xlf1eL3JsXTb6G9HDbbsGyP6hQAEppu0UEqfRqztLTU9Plv\nCjQAmCAv1ZWX6lKdAgBikS7W3ETIGmgAAAAkJl2UHOVtHQo0AAAArKTreljZEg4rUKABM63c\nE0p3i/N4+wG77NrkXFtc7XQCAIAJdGv2gVY4qU2BBkyz9mDo+R2Bkzzh3890TcrlsA0AwEBj\n0U2EylCgAdOkJWkiMi7LdnrecVpykl0bl017BgAMPFadRMgSDsB6PT095eXlXq/XovEb2hwi\nqSPTtYtH8i8LAIAjMAMNxKlnn3320KFD1o3f6Bspoy5fv6vymtOGW3cVAADii67rVpxEqLCU\nU6AxgKSkpIjI+PHjk5KSrBi/ot2x99CBgsKE+iUbAIB+4yRCIG71Hlp+/vnnp6enWzH+lgNN\nLy/b4B02JBTW7Ta22wAAQES+OklFdQgzcUsTYJr69m4ReWV9xQ+e36g6CwAAsUP/6jRv0z8U\nYQYa8SoQCIjI9u3b6+rq+viSA5VVViaSiYPTC9I9GSmuGaNzLL0QAABxxKp9oE0fsc8o0IhX\nLS0tIrJ79+7du3f38SV13Y7sJKlv6bBoCUdOqnv5P8+0YmQAAOJagi3hoEAjXs2bNy83Nzcj\nI0Pr8+F+D//h0/f3HLzZm2ppMAAAcBTdopsIWcIBGORwOKZOnWroJSm+Xa1BC7exAwAAX6eL\nRdvYmT9kH1GgAQAAYCWrbvhjBhqwXnVjm4jc+ugfnY442H/mslkTLps1XnUKAAD6z6KjvJWJ\n3QLt9/vLyspSU1muarnOzk7VEaIkPcUjInsO1qsOcmo2m1bT1KY6BQAAZtA5yjtaXnzxxQMH\nDvT9/jD0UzgcttvtqlNY65f/skB1BAAABhyrtrFjH+ivS09Pr6ioOP30071er+osCW7z5s0d\nHR02WxysagAAAHFI5aEnVojdAp2UlCQi06dPLygoUJ0lwX355ZcdHR2qUwAAgASlix5WsAtH\nMBj813/91xUrVgQCgQULFvzyl7/srZf9F7sFGgAAAAnAoiUcp2zQt99++4oVK5544gmn0/mP\n//iPN95443PPPWfKhSnQAE5t5e6urTXBoWkJvkr+lLwu28Ulbm7NAACDFCzhaGtre/bZZ599\n9tkFCxaIyOOPP37JJZf84he/yMnJ6f/gFGgAp7Zip7+tW99UHVAdRDGbJrOGujI93DAAAEao\nOIlw27Zt7e3tc+fO7f30vPPOCwQCmzdvnjdvXv8vTIEGcGoFXntbd/D+81NtA3vyNcVpoz0D\ngFEFGclXzyg+8pFVWw/WtfoNDTJhSMbEIZlHPpJ00t3DqqurXS5Xenp676culysjI6OqqsrQ\nRU+EAg3gKMFg8O23387JyXE4/vb9obk1X8QzIsMxwAs0ACACrR3dG/bWHflIe1fA6KKOqsaO\nnkDoyEemjcg+yfN1Xf/6bsjBYNDQRU+EAg3gKOvWrduwYcMxDx4q+nvNm6SLLkKDBgAY094d\nKDvY1M9B6lu76lu7jnwkGD7ZspCCgoLu7u62tjafzyciwWCwubm5qKionzF6UaABHCUzM1NE\nJkyYMGbMmMMPfvH2/ooDuzV9If0ZAGCYruAmwtNOOy05Ofm9995buHChiHz00Ud2u/300083\nZXAKNICj9L7hlZeXd9pppx1+MOnPB3o6Wt7daubhoClJzmmjC2wsCgGAASHaBTotLe36669f\nunRpUVGRzWb7/ve/f9VVV+Xn55syOAUawKlVNrSJyB3PrTZ32P+3+NzZEwabOyYAINboYs0+\n0Kea1X744Yd/+MMfXnLJJaFQaOHChY888ohZV6ZAA8YsX768trY2IyNDdRCrNLV1iUhlXcuR\nDy659Ix1ZdXF+WkmXshpt00bzTmjADAA6Lqu4ihvh8PxyCOPmNib/zay6SMCiW3//v09PT1N\nTf29GSJmtTgyfZq9uuuovYEumFJ8wZTiE70EAICTUrAPtKUo0IAxPp+vs7Pz1ltvVR3EKuv2\nt963quKG0ebcpwwAgK6LFTPQKia1v0KBBgzTNM3j8ahOYRWXy9jO9gAAnIKKXTgsRYEGcBxK\nFqsBABKUNTcRqlvCwZm0AI5S29YtIs9/UtXcGVCdBQCQEPS/TkKb+6EOM9AAjjJ5SGqW11mc\nnexx2U/9bAAATkWXsJJt7KxDgQZwlGFZycv/wZyDmgAAEPnrDHQCoUADAADAUmr2gbYOBRoS\nDAZFZMeOHTYba+JPze/3h0Ih1SkAAIgfzEAj8TQ3N4vIihUrVAcBAAAJyKKjvBXOalOgIQsX\nLiwvL8/OzlYdJD785S9/YQZauX9d1dzQFcrwnPA9E5/LduuZvnQ3b6oAQAxQvWmG6SjQkJKS\nkpKSEtUp4sbatWu7urpUpxjo9jcHg2G9seuE8xkeh9YR0NPd0QwFADgxSwo0M9AA0Gcep+Z1\n2R6fn6k6CACgD3RrbiLkKG8ACamhoeHFF1/MzMx0uVwmDtsVnhVmHQ0AxA1dLDmJUBkKNAAL\nlZWVNTQ0NDQ0mDtseOw3usMJtZwOABKYrlt0wx9LOAAkoszMTBGZOXNmaWmpicPevtblc3GD\nIADEC24iBACDPB5PRkaGiQOG9E5/KKG+FwNAItMt2caONdAAYEAgLKEABRoA4oNuzU2EOks4\ngHjR3t7e3d191113qQ4SH3ocKS6RnZWNM0wd9t7Zbrtm6ogAAAtxEyEwsBUUFNTV1aWlpakO\nEh+q9cy25sZw2hBzhx2WxgJoAIgfVt1EqAwFGjBm0aJFqiPEk48ruu5/v/7sonTVQQAACllz\nE6G6Us4sDgAAACyk67quh03/iCxMT09PVlZWP/dXZQYagOWq24Jbqv2qU8QEp10bm5OksYAb\nwEATA/tA+/3+tWvXPvXUU42Njf28MAUagIUOtgZEZNUX7au+aFedJVbccW72tMEe1SkAIIr0\nmNgH+tFHH/3Vr37V09PT/6Eo0AAsdMFob1ldT57XkcSuGSIi4nFqE/LdqlMAQLRZso2dwSGX\nLl26dOnSjRs3Tp06tZ+XpkADsJDXZfvJudmqUwAAVCoZnPPzWy468pHHX/2o/JCxdRRzp5bM\nm1Zy5CPJbqcJ4SJCgQYAAICFyipqnn3jk34OsurTslWflh35yFNLrzjJ81esWHH55Zd/FaCs\nrKSk5CRPNooCDQAAACvp1txEeNIhFy5c2Nzc3Ptnn89n7pUp0AAAALCQLpHvOneKgU/M6XRa\nd+oZBRoATigYCp9/9xuhsPqbx9XKT/f87vvn223cCQogIhbNQKtDgQaAEwqEwqGwnprsGl0w\noA9vz0/z2Ni8GkDkdI7yBoCBZXRB2sPXnaU6BQDELV0XK5ZwRFTKS0tL+9/mKdAAEtMHH3zw\n4YcfpqSk2Gy2iAcJhDWRYfsO1poYDAAGGl23Zh9o00fsMwo0gMRUV1cXDAZDoVB/CrSu66Ee\nf8iWUO88AkDU6Urrrvko0AASU2Zmpoh861vfKi4ujniQzu7A8tt+M3jsYPNyAcAApEd/Fw5L\nUaAB4BS27a+55t6XRGTKqEG3f3um6jgAEG/YhQNAdASDwb1795q+9/vA0drW1v9BXA67w27v\n8PfsrKgTERv7uAGAcbpFu3Co6+QUaCBGvfTSS7t27dLYOyxSda3dOalJO3bv7wYj1OcAABD/\nSURBVM8SDofdtv7xm01MBQADkVUz0CzhAHA0r9eradro0aOZhI7MWx9v21Re840Ls1QHAQBY\ntAZaGQo0EKM8Ho+IzJgxY+jQoaqzxKVddYE31n3hdLpUBwGAAU/XLZmBVreumgINAAAAS1lT\noNWhQANITO2dfhH53ZurP9y4w9ILlQwrvHQu5xQCwAnpuiVLODhIBcCxdu4pF5HW9i7VQeLV\nl4fqReSP7663+kJJLueCOdMd9siPawGAxMdNhACioLG5TUQqGzsmqE4Spx79yU1/+Mu6oQW5\nVl+oICeD9gwAJ6OzjR2AqPCkZXbVtmbmWN7/ElWy233NRd9QnQIA0LuLHWugAQAAgD7SdeEo\nbwAAAKDPLFnCwU2EAI7V+31hX12H092kOIoSmowblOp22lXnAAD0m0UnEbIGGjBFOBx+8MEH\ndV13u92qs/RXTaueJvLCmvIurUZ1FjUuP6PoljkjVKcAAPSXbtFNhCzh+LpwOKGOfER09PT0\ndHZ22myJsCVCp2TYtNC54wel+ryqsyigiTb3tDzVKQAAprBoDbQysVugt23bJiLl5eUFBQWq\nsyBuaJomIsOHD7/22mtVZ+mvu//w+bs7apaeMyo/zaM6CwAA/aBbswuHuiUcsTtRl5eXJyKF\nhYWqgwAAAKA/dNEt+FDXoGO9QDudTtVBAAAA0A9WtGelG0vHboEGAABAAtBF1/Ww6R9GY9TU\n1Hz3u98dNGhQRkbGBRdcsHXr1oi/othdA40Etnfv3pdeeiktLc3hMPn/wN57T/eVf2nusEoc\nqO8QkaseW2P1hS4uLfr+BWOsvgoAYOCyahs7Y2Nec8019fX1L7zwQkpKyoMPPjhnzpzPP/88\nsnvtKNBQoKKioru7u7a21vSRewKh1g5/V6Dd9JGjb2pxVl1bd166R7PyKnabVpw7EHf5AABE\nkfqDVA4ePPjOO++sWbPm7LPPFpEXXnghPz9/5cqVN910UwSXpkBDgfT0dBG56KKLpk6dau7I\nbe2dw89ceO7ZJg+rxM3njbr5vFGqUwAA0G8WzUAbEQqF7rrrrtLS0t5PA4GA3++PeNNkCjQA\nAAAsNGrYoHt/cNT2sk/+7q0DVcbeiJ5z5sS5Z08+8pFkt6vvLx8yZMhPf/rT3j93dnZed911\nmZmZV1xxhaEMh1GgAQAAYKHd5ZVPLH+zn4O8u27Lu+u2HPnI8z//4Umev2LFissvv7z3z2Vl\nZSUlJSKi6/qyZct+8pOfDB8+fOPGjZmZmZGFoUADAADASlbdRHiyv1y4cGFzc3Pvn30+n4jU\n1dV9+9vf3r9///3333/llVf259xiCjQS0Jbtuy+78UeqUxjjTU7+5d23p6f6VAcBAMBkujU3\nEZ68QTudzrS0tL89Vde/+c1vDho0aOvWrUc+HhkKNMzX1tZ28v3penp6LLq0K8npsNsbW1o/\n+HiTRZewSLLH3dzSRoEGACQgXRfj2zab69133924ceMPfvCDDRs2HH6wpKSkqKgogtEo0DDZ\nypUrN27c2Jdn7tmzx/RdOJKczoOb32pr7zB32ChI9nhcTv49AgASkzUz0AZs2bJF1/Vrrrnm\nyAcfe+yxf/qnf4pgNH5gw2S9K4qGDh3q9Z5wd+H6+vqampqIV+6fnN1mYx4XAIAYYtHJ20bG\nXLJkyZIlS8y6MgUaJktJSRGRc845Z+TIkSd6zubNm19//XWLCjQAAIgpuq7+IBVzUaABAABg\nMdVLOMxFgQYst+dg02/e2jB2SI7NZuBY7uzU5PnTOIkQABD/rJmBVjgFTYEGLPfoyvVrd3z5\n3tYDhl5ls2nfmDgsxe20KBUAANET9W3sLEWBBixXUpS1dseX/7LwjDGDs/v+qgyfh/YMAEgA\nFq2BVogCDQXC4bCIVFVVbd++XXWWaKirqxeR0YVZ00oKVWcBAEAJCjTQP/X19SKyadOmTZvi\n7LiTyGwOjxCRssrGM8dGsls7AABxTtctOEhFZwkHBpTZs2cHAoHc3Fy73a46SzQ4K2zv7W0f\nP2a46iAAAKhg1T7Q5g/ZRxRoC3V1dT344IOhUEh1EAUOHTp0kn2g3W73RRddFM08au3Q6931\nDeWNAYet04rxHTZtTJ7bYWSLDwAAokaPgZMIzUWBtlB3d3coFHK73QPqxJDm5ubOzs6kpCTV\nQWLInnq/iPzP+jrrLnHt1Oy/n5xl3fgAAETOohlolnAkpN5DrYuLi6+44grVWaLn/ffff//9\n9zMyMlQHiSFXTc7qCYZHZXtsNkvG1zQ5p5jTywEAMcuSNdAKUaABy43J89x30RDVKQAAUES3\nZh9o1kADAAAgQenWtF2WcAAAACAR6cJBKgAAAEDfWbSEQx0KNBC5HZVNNz/5fjjOvyk4HbYf\nXHT6wjOGqQ4CAEhU1hykou7nLwUaiFxThz+s65m+pJxUj+oskdNEy0l1q04BAEhcVm1jpwwF\nGohcSpJTRC6cPPSWvxuvOgsAADFK1zlIBTip5uZmEXnttdecTqfqLJar7HKK5JftrRChQAMA\ncCLswgGcVEZGhqZpwWBwIJxh3tXWHQ50d7b3qA4CAEBsYwYaOInZs2fPnj1bdYoo+XTH/r/c\n+XTJxFmqgwAAgOiJ1wLd09Ozfv369PR0TdNUZzmhrq4uEenpYXoyYXV1B0TkrbWf79hXpTqL\nCb47f8Y3SktUpwAAINbFa4H+05/+tHXrVtUp+uTLL79UHQFWSXa7RJODtU0Ha5tUZzHBlDFD\nKdAAAJxSvBbozMxMEZk4cWJubq7qLCfU3d394Ycf5ufnqw4Cq0wdO+yzF37WEwiqDmICl8Ph\nTkr8+z4BANE3b9b07Iw004cdOWyw6WP2UbwW6N4dHsaOHTt27FjVWU6otbX1ww8/TElJUR0E\nFnK7nG4XvRMAgBM6s3TCmaUTVKcwk011AAAAACCeUKABAAAAA+J1CQdgkd3Vbc+v2VtS4Ivl\nDV5ilsthv2hykdtpVx0EAAALUaCBozy6aufWisYPdh5SHSReFaR7ZoyO3Vt7AQDoPwo0cJSR\n+b6tFY3/cO6owZnc/WlYittROjxLdQoAAKxFgYb5wuHwhx9+mJGRYbfH31v5DQ1NIjJ5WNb4\nonTVWQAAQCyiQMN869ate++991SniNBmbZzYUr+oOESBBgAAx0WBhvnS0tJEZOTIkcOGDVOd\nxbD2HR2fVPYUF+aoDgIAAGIUBRrms9lsIjJs2LCZM2eqzmLY5tZt6yr2VDZ0sJVEFOSkejK9\nSapTAABgDAUaOMqu6mYRue/VTaqDDAgFGckv3z5PdQoAAIyhQFtI13URqaysfPnll1VniarG\nlnYRqW3uUB0kEt+dNVp0GVuUbrOxD7TlinNTVUcAAMAwCrSFbDabpmmtra3bt29XnSWq2pJy\nvSL7W3TVQSIxbVTutFFsYwwAAE6IAm0hn89366236ro+0M6023Cw+/G1dd8ZX6g6CAAAgPko\n0NbKyMhQHUEBb0t70NaqOgUAAIAlbKoDAAAAAPGEGWiYr6EjKCLLNze8srVJdZZY5LJr984v\nKkpzqQ4CAAAiQYGG+UZmu5Odtsxkh9vJWxzH4XJobgf/ZQAAiFcUaJhvTJ77petGqk4BAABg\nCabBAAAAAAMo0AAAAIABFGgAAADAANZAA+irdbsO3ffKJ4MyvU67sd+9U5NdS781NS05yaJg\nAABEEwUaQF+9t7WitrmztrnT6Asddtui806jQAMAEkOsF+jW1la32/31x7u6uqIfBhjghuel\nici/XzH9G+OLDL3QYbd5XLH+3QYAgD6K3R9p1dXVIrJ8+fITPUHX9X379o0dOzaKoYCBqLq6\n+o033sjOzt5Y3i0igW6/z8MpMACAgSt2C/T06dMDgUBhYaGmaV//24MHDx46dCg3Nzf6wYCB\n5uOPP66srKysrNxWrUnq6B07y741c5zqUAAAKBO7BXrChAkTJkw40d+uWbPm0KFDXq83mpGA\ngSkvL09Ezj///JTPyx9d/uaEed9TnQgAAJVit0ADiBG97wJlZGS4PYcCXW3/98H6L6tqVYeK\nhiSX85vnnlmYn6M6CAAgtlCgAfTV3ooqEfnD26v/8H+rVWeJkqra+p/etlh1CgBAbKFAA+ir\ne3940+D83FHDi457Z0Li0TTtnDMmqk4BAIg5FGgMILt27Wpra/N4PKqDxJneLXF0XU9Odt9+\n05Wq4wAAoBgFGgPI7373O13XVaeIV7t37x4/frzqFAAAqEeBxgCiaZrP55s2bZrqIHFm//79\ne/fuHT58uOogAADEBAo0BhBN07xe78yZM1UHiTM2m23v3r0uV6wcnlLT7K9q7kxJ4tuXYcNy\nvC6HTXUKAIh7/AQCEGcWPflRVyCkOkVcmj+5aOlFp6lOAQBxjwINIM64Xfawrs+bOEh1kDjj\nsNvOHZevOgUAJAIKNIA+6enp6erqUp1CRCTJYRNx3D6fmVQAgBoUaACnUFdXJyKvv/7666+/\nrjqLiEi962xdBsRG1ACA2ESBBnAK48aN27t3b0ZGht1uV51FRGRjc5po3AkHAFCGAg3gFEaN\nGrVkyRLVKf5m9UsHuoNh1SkAAAMXBTqGPPbYY01NTbGzWVjiCYfD9fX1qlOgv1r9IX8wfNXz\n+1QH+Yrdpv14Tv74fE64BICBggIdQzo7O8PhsNvtVh0kYfn9fk1j7WzcK0pzHWwNeF2xsorD\n7dSS2FwZAAYSCnQMSUlJCYfDt912m+ogCevuu+/OyspSnQL99dDFRaojAAAGNGZNAAAAAAMo\n0AAAAIABFGgAAADAANZAY2DpCurf+0P14DSHy2753YQOm3btlLScFP6VAQCQUPjRjoGlvTt0\nqDVwqDUQhWtpIueOSKFAAwCQYPjRjoGld+L5hjPSpw1OtvpaHqeW5o6Jo/sAAICJKNAYQHRd\n7/J3S5rYw4F8H//zAwCASHATIQYQXdc7esIi8kVlneosAAAgXsXrJFzvgcy///3vVQcxE4fk\nWe2mm256c1vtps8PTjhjhOosAAAgXsVrgS4uLt6xY0d6errdnjhrTGtqanRdV50ikRUUFPgq\ng+Fgy+aK5q5AyNzBJxalDcmyfF01AABQLl4L9IQJEyZMmKA6hckef/zxtrY21SkS3JcNfhF5\na+uht7YeMnfkGaOy/vPS08wdEwAAxKB4LdBAZG6ZMzzD6yzOTjZ9wcyYAp+5AwIAgNhEgcbA\nkuxyXD9zmOoUAAAgjrELBwAAAGAABRoAAAAwgCUciD8Nbf7Khk63K0obsGR6k3JS3dG5FgAA\niH0UaMSfq3/5numb0J2E3aa99IPz6NAAAKAXBRrxx+m0iyZzJxZG53KpHldGSlJ0rgUAAGIf\nBTq26Lre1dWlOkWsS3LYkhy2Hy6YqDoIAAAYiCjQMaS1tbW7u/uBBx5QHSTWNdmmC6eeAwAA\nRSjQMWT48OE1NTUZGRmqg8S6TS05mp0NZAAAgBqaruuqMwDG3PR6fViXZy7JVh0EAAAMRBRo\nxJ+rX67tDkqKi2UcZnLYtMtPS/nmaI/qIAAAxDqWcCD+5KU46jpDKS5WcZgsWjtrAwAQ35iB\nBgAAAAxgDg8AAAAwgAINAAAAGECBBgAAAAygQAMAAAAGUKABAAAAAyjQAAAAgAEUaAAAAMAA\nCjQAAABgAAUaAAAAMIACDQAAABhAgQYAAAAMoEADAAAABlCgAQAAAAMo0AAAAIABFGgAAADA\nAAo0AAAAYAAFGgAAADCAAg0AAAAYQIEGAAAADKBAAwAAAAZQoAEAAAADKNAAAACAARRoAAAA\nwAAKNAAAAGAABRoAAAAwgAINAAAAGECBBgAAAAz4/7CfGN3z2XvgAAAAAElFTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n <- 50\n",
    "#random tree\n",
    "tree <- rtree(n)\n",
    "#Random tree associated data\n",
    "tad <- data.frame(seq=tree$tip.label, group=rnorm(n))\n",
    "\n",
    "ggtree(tree, aes(colour=group)) %<+% tad +\n",
    "theme(legend.position=\"right\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nEvFgR5TuqgAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n <- 50\n",
    "#random tree\n",
    "tree <- rtree(n)\n",
    "#Random tree associated data\n",
    "tad <- data.frame(seq=tree$tip.label, group=sample(c(\"a\",\"b\",\"c\"), n, replace=T))\n",
    "\n",
    "ggtree(tree, aes(colour=group)) %<+% tad +\n",
    "theme(legend.position=\"right\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Points for some tips"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA8AAAAFoCAMAAACv2GIDAAABR1BMVEUAAAABAQEICAgJCQkO\nDg4PDw8QEBAREREUFBQVFRUYGBgZGRkeHh4gICAiIiIlJSUoKCgpKSksLCwtLS0xMTEyMjIz\nMzM1NTU3Nzc4ODg6Ojo8PDw+Pj5CQkJFRUVKSkpLS0tMTExNTU1OTk5TU1NVVVVWVlZXV1db\nW1tdXV1fX19jY2NkZGRmZmZoaGhpaWlqamptbW1vb29xcXFycnJ1dXV3d3d4eHh8fHx/f3+A\ngICDg4OEhISGhoaHh4eIiIiJiYmOjo6RkZGSkpKVlZWXl5eYmJienp6goKCkpKSmpqaqqqqr\nq6uurq6vr6+xsbG3t7e7u7u8vLy+vr6/v7/AwMDBwcHCwsLIyMjJycnKysrMzMzPz8/X19fa\n2trb29vd3d3o6Ojp6enr6+vs7Ozw8PDx8fHz8/P29vb4+Pj9/f3+/v7///+vcQ4qAAAACXBI\nWXMAABJ0AAASdAHeZh94AAAH5UlEQVR4nO3cV9MlZRWG4QYRFSQIMqLkJKIigomcQcAACCaC\nDOiA6f8fizNnFPDV17XW886avq7j/VatWrvu6u7aXXv7LzDWtnoAYD8Bw2AChsEEDIMJGAYT\nMAwmYBhMwDCYgGEwAcNgAobBBAyDCRgGEzAMJmAYTMAwmIBhMAHDYAKGwQQMgwkYBhMwDCZg\n0v7+wyeeOZDnz3UuU8CkPbQdy8udyxQwaS9uD/3mQH73z85lCpi0l7dfrx7h0iFg0gRcSMCk\nCbiQgEkTcCEBkybgQgImTcCFBEyagAsJmDQBFxIwaQIuJGDSBFxIwKQJuJCASRNwIQGTJuBC\nAiZNwIUETJqACwmYNAEXEjBpAi4kYNIEXEjApAm4kIBJE3AhAZMm4EICJk3AhQRMmoALCZg0\nARcSMGkCLiRg0gRcSMCkCbiQgEkTcCEBkybgQgImTcCFBEyagAsJmDQBFxIwaQIuJGDSBFxI\nwKQJuJCAKXb2JE8KuI6AqfXCdrL7Vw956RAwtV7cvn3fl7txe3z1kJcOAVPr1e2FEz7hGbiQ\ngKkl4CgBU0vAUQKmloCjBEwtAUcJmFoCjhIwtQQcJWBqCThKwNQScJSAqSXgKAFTS8BRAqaW\ngKMETC0BRwmYWgKOEjC1BBwlYGoJOErA1BJwlICpJeAoAVNLwFECppaAowRMLQFHCZhaAo4S\n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\nSUVORK5CYII=",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n <- 5\n",
    "#random tree\n",
    "tree <- rtree(n)\n",
    "\n",
    "keeptip <- tree$tip.label %in% c(\"t2\", \"t5\")\n",
    "keepnode <- c(keeptip, rep(F, tree$Nnode))\n",
    "\n",
    "#Plot tree\n",
    "ggtree(tree)+\n",
    "#Add tip points, coloured according to data\n",
    "geom_point2(aes(subset=keepnode))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Labels for some tips"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA8AAAAFoCAMAAACv2GIDAAABxVBMVEUAAAACAgIDAwMEBAQF\nBQUGBgYICAgKCgoLCwsMDAwODg4PDw8QEBARERETExMUFBQWFhYXFxcZGRkaGhocHBwdHR0e\nHh4fHx8gICAiIiIjIyMlJSUmJiYnJycoKCgpKSkuLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU4\nODg5OTk6Ojo8PDw9PT1AQEBBQUFCQkJDQ0NERERFRUVGRkZKSkpLS0tMTExQUFBRUVFTU1NU\nVFRVVVVXV1deXl5jY2NkZGRmZmZoaGhpaWlra2tvb29xcXFzc3N0dHR2dnZ3d3d7e3t8fHx9\nfX2BgYGCgoKFhYWHh4eIiIiKioqLi4uNjY2Ojo6QkJCSkpKWlpaXl5eYmJiampqcnJyfn5+g\noKCjo6OkpKSlpaWmpqanp6eoqKiqqqqsrKytra2urq6vr6+wsLC0tLS2tra4uLi6urq7u7u8\nvLy9vb2/v7/AwMDDw8PExMTLy8vMzMzNzc3Pz8/R0dHS0tLT09PV1dXW1tbX19fb29vd3d3f\n39/j4+Po6Ojp6enq6urr6+vs7Ozt7e3w8PDx8fHz8/P09PT19fX39/f4+Pj5+fn6+vr8/Pz9\n/f3+/v7////AYYUzAAAACXBIWXMAABJ0AAASdAHeZh94AAAJP0lEQVR4nO3d27McVRXA4Q2Y\nRIMBL6iJghpA8RYFE0EjQlC8RERBMSKiIqhoQEFQg0EFjSIQBKNx/l5PEh7oLijJ1Fqrzzp8\n30NXP+1avbt+Nd0zDzNWQFtj6QGA9QkYGhMwNCZgaEzA0JiAoTEBQ2MChsYEDI0JGBoTMDQm\nYGhMwNCYgKExAUNjAobGBAyNCRgaEzA0JmBoTMDQmIChMQEzdftX7tyEjjy39L5sUgJm4oWx\nOX136Y3ZpATMxMmx92eb0M//ufTGbFICZuLk2L/0CJwHATMh4F4EzISAexEwEwLuRcBMCLgX\nATMh4F4EzISAexEwEwLuRcBMCLgXATMh4F4EzISAexEwEwLuRcBMCLgXATMh4F4EzISAexEw\nEwLuRcBMCLgXATMh4F4EzISAexEwEwLuRcBMCLgXATMh4F4EzISAexEwEwLuRcBMCLgXATMh\n4F4EzISAexEwEwLuRcBMCLgXATMh4F4EzISAexEwEwLuRcBMCLgXATMh4F4EzISAexFwvFN/\n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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n <- 5\n",
    "#random tree\n",
    "tree <- rtree(n)\n",
    "\n",
    "keeptip <- tree$tip.label %in% c(\"t2\", \"t5\")\n",
    "keepnode <- c(keeptip, rep(F, tree$Nnode))\n",
    "\n",
    "ggtree(tree)+\n",
    "geom_text2(aes(subset=keepnode), label=tree$tip.label[keepnode])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# `gheatmap`\n",
    "Requires multiple columns, i.e. you can not add only one variable. A way arround this is to duplicate the desired column and to turn off the lines separating them.\n",
    "## Continuous heat map"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Scale for 'fill' is already present. Adding another scale for 'fill', which\n",
      "will replace the existing scale.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nmzcvNTX122+/LSkpeeGFFxISEmSHspjhw4d/+eWXu3bt6t69u2lk6tSp77777sqVK0ePHi01\nWmV17Njx9OnTp06dqlu3rhCiqKgoKCjozJkzubm5NjY2stNZTEpKSnh4uE6na9q0aXp6uuw4\nFrBp06YBAwZ89913jz76qOwsqBKq96/yAFAzFRUV7dy5Mzc3t1OnTrKzWN7evXs7dOhgbs9C\niNjYWCHE7t275YWygJKSkrS0tL59+5rasxDCYDD06dMnPz8/MzNTbjYLunLlysiRI4cMGdK6\ndWvZWSzm1KlTQghrekWoJLZwAED14+LismPHDiFEVlZWgwYNZMexJKPRGBMTExgYWHbw3//+\ntxDC3t5eUijLUBQlJSWl3L+vkydP2tvbe3p6ykplWYqijBo1ys7O7oMPPujRo4fsOBZz6tQp\ne3v7FStWfPLJJ1lZWa1atRoxYsTLL79sTX9vAFUo0ACAKkSv18+ZM6fsyK1bt+Li4oQQUVFR\nkkJZhp2dXefOnU3ff/nll+np6du3bz9w4MBHH33k4uIiN5ulLFiw4Pvvv09JSXF1dZWdxZJO\nnTpVUFCwbNmyxx57zMnJaevWrZMnT05JSdmwYYPsaJCDAg0AqLr27t07fvz4o0ePxsXFde3a\nVXYci5kzZ05GRoadnV1QUFD79u1lx7GMAwcOTJs27a233jL/nmA1fHx8oqKiFi1aZPq7gpKS\nkmHDhm3YsOHrr78eOHCg7HSQgD3QAICq6Ny5c0888USXLl2uXbu2YcOGmTNnyk5kSYcPH87N\nzb18+XJgYOBDDz1k2qNSrV2/fj0qKqpnz55TpkyRncXyVq5c+dlnn5l32tja2r7xxhtCiO3b\nt0vNBWko0ACAKufzzz//y1/+kpKS8v7776enpw8aNEh2Igs4e/ZsUlLS77//bh6xsbF57rnn\nrl+/vnbtWonBLGLZsmWZmZl+fn6zZ89+66233nrrrd9//z0nJ+ett95asmSJ7HSWZzri+vz5\n87KDQA62cAAAqpZNmzbFxMR079599erVXl5esuNYzG+//TZ06NAlS5aUPbc7NzdXCGFrW+3/\nOC4uLhZC3H6c4vTp0319fZ9//nkZoSzj5MmT06dPj4mJefzxx82Dpr80aNWqlbxckIkVaABA\n1fLKK694enp+++231tSehRDt27d3cnJatmxZYWGhacRoNC5evFgI0aVLF6nRLOD1119X/ldQ\nUJCvr6+iKNX9KOgWLVrs3LnzlVdeuXHjhmnEaDTOmjVLr9dHRETIzQZZqv2vvAAAa3Ly5Mmf\nf/7Z19f32WefLfdUz549n3rqKSmpLMLJyWn27Nkvv/xy27ZtBw4caGtru3Xr1kOHDo0dO/ah\nhx6SnQ53ZGtru2jRoujo6MDAwMjISL1en5ycfOjQoVdeeaVjx46y00EOCjQAoAo5ffq0ECIj\nIyMjI6PcU7Vr167WBVoI8dJLL3l5ecXHx69cuVIIERAQ8Omnn8bExMjOhXsYOXKkq6vrvHnz\nVqxYIYQIDAxMSkp64oknZOeCNHyUNwAAAKACe6ABAAAAFSjQAAAAgAoUaAAAAEAFCjQAAACg\nAgUaAAAAUIECDQAAAKhAgQYAAABUoEADAAAAKlCgAQAAABUo0AAAAIAKFGgAAABABQo0AAAA\noAIFGgAAAFCBAg0AAACoQIEGAAAAVKBAAwAAACpQoAEAAAAVKNAAAACAChRoAAAAQAUKNAAA\nAKDC/wOXJqGb++OIMgAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n <- 5\n",
    "tree<- rtree(n)\n",
    "\n",
    "Aphy <- matrix(rnorm(n*n), n,n)\n",
    "colnames(Aphy) <- 1:n\n",
    "rownames(Aphy) <- tree$tip.lab\n",
    "\n",
    "gheatmap(\n",
    "    ggtree(tree) + geom_tiplab() + ggtitle(\"Tree and Aphy\"),\n",
    "    Aphy\n",
    ") +\n",
    "scale_fill_gradientn(colours=c(\"#185d75\", \"#49ebbe\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Discrete heatmap"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning message:\n",
      "“attributes are not identical across measure variables;\n",
      "they will be dropped”"
     ]
    },
    {
     "data": {
      "image/png": "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\n7Oxcu3btwsLChISEZ0yryJwnvf7667du3UpMTHz99dddXFy0g2fPnpVapEmTJkKIJ0+JXLly\n5dk3sX7w4MGWLVusrKxu3LhRq1atsi8tWbJk7Nixq1evLlegL168qDtmrXXhwgUhhI+PT8UD\n9+/ff9KkSevXrx8xYsTOnTt9fX2171AEAACAQRnvY7dfeumlBw8elDuanJ+f37lzZ+0b/io4\np5yCgoIzZ854eXm9++67uvYshDh27JhUPH9/fzs7u507d169erXs+LfffvvsL1y3bl1hYWHn\nzp3LtWchRP/+/S0sLA4cOFDuSMnKlSvLPr1169bGjRutrKxatmxZ8cCNGzcOCgr65Zdf/vWv\nf5WUlLD9DAAAYBzGK9DafeWRI0f++uuv2pHi4uKxY8fu3bu3WbNmFZ9Tjr29vaur661bt65d\nu6Yd0Wg0X331lfbzRJ5xbLocFxeXsWPHFhUVRUdH37p1Szu4bdu2xMTEZ3/hd999J4QYNGjQ\nky/VqVNHe9MP7RELneXLl+veXHj37t3Bgwfn5+cPHz68fv36FUyrNWDAAI1GM2vWLCFETEyM\n1NcCAADg+RivQIeGhv7zn//MzMwMCAgIDg6OiIjw8vL6+uuv//a3v82YMaPic5701ltvFRUV\ntWrVasiQIUOGDPHz84uLi9Pefm769Onjx4+vYMIpU6YEBQX9/PPP2pvQNWvWrGfPni1atGjb\ntu3TvuTq1atpaWnW1tavvPLKn04YOHCg+P8lW+fvf//70KFDfXx8/va3vzVo0GDfvn3+/v4f\nfvhhBXPqaG9mV1xc3LZtW6njHwAAAHhuxivQQoh58+Zt3rw5IiLi5s2bhw4datiw4YIFC/bs\n2VP27YYVmVPORx99tGDBgnr16m3evPnkyZPt27fPyMj4/PPPv/jii8DAwGd8oRCiRo0arq6u\n2sfu7u4HDhyYOnVqq1atTp8+/ejRo7i4uN27d0dGRpa7JZ/O6tWr1Wp1165d3dzc/nSC9hTH\nf/7zn1OnTukG165dO3/+/Nq1a585c6ZZs2ZxcXGHDx+W3X4WQvj6+rZo0ULw9kEAAAAjUj3t\n00lgCK1btz569GhhYaGtrW3lV9NoNN7e3r/99tv169fL3SkPAAAABmLUHWjoV1paWnZ2drdu\n3WjPAAAARmOk29hBvx48eJCXlzdlyhQhxGuvvaZ0HAAAgGqEAm2SOnXqlJGRIYQICQkZMGCA\n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\nLevZs6eDg8OuXbsmTpyYnp6+YcMGpaPBSCjQAAATcODAgdGjR586dSohISE0NFTpOPo0Z86c\nrKwsa2vrgICAwMBApePox+HDh+Pj4z/++GPdzwnmpGHDhtHR0QsXLtT+uuDx48eDBg3asGHD\npk2bevfurXQ6GANnoAEAVdrVq1f79evXvn37+/fvb9iwYcaMGUon0rMTJ07k5ubevn27VatW\n7dq10x5TMWkPHjyIjo7u3LnzpEmTlM5iECtWrFizZo3usI2VldVHH30khNizZ4+iuWA8FGgA\nQNX1/fffv/jii+np6V988UVmZmbfvn2VTqQfV65cSUlJ+eOPP3QjlpaWb7755oMHD1avXq1g\nML1YtmxZdna2r6/v7NmzP/74448//viPP/64e/fuxx9/vGTJEqXTGYT2LtfXrl1TOgiMhCMc\nAIAqauvWrbGxsR07dly1alX9+vWVjqNPv//++4ABA5YsWVL21t25ublCCCsrk/+vuaSkRAjx\n5B0Vp02b5uPjM2bMGCVC6c358+enTZsWGxvbp08f3aD29wb+/v7K5YJRsQMNAKiiJk+e7OHh\nsX37djNrz0KIwMBABweHZcuWFRUVaUfUavWiRYuEEO3bt1c0mh68//77mv8rICDAx8dHo9GY\nwa2gvb299+3bN3ny5IcPH2pH1Gr1zJkzLSwsoqKilM0GozH5H3MBAGbp/Pnz//nPf3x8fN54\n441yL3Xu3Pm1115TJJW+ODg4zJ49e/z48S1btuzdu7eVldWuXbuOHz8+atSodu3aKZ0Oz2Jl\nZbVw4cKhQ4e2atVq4MCBFhYWqampx48fnzx5cuvWrZVOByOhQAMAqqKLFy8KIbKysrKyssq9\n5OjoaOoFWgjxzjvv1K9fPzExccWKFUKIZs2affvtt7GxsUrnwl+LiYlxdnaeN2/e8uXLhRCt\nWrVKSUnp16+f0rlgPHyUNwAAACCBM9AAAACABAo0AAAAIIECDQAAAEigQAMAAAASKNAAAACA\nBAo0AAAAIIECDQAAAEigQAMAAAASKNAAAACABAo0AAAAIIECDQAAAEigQAMAAAASKNAAAACA\nBAo0AAAAIIECDQAAAEigQAMAAAASKNAAAACABAo0AAAAIIECDQAAAEigQAMAAAAS/h/yBLAa\nNIUTtwAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n <- 5\n",
    "tree<- rtree(n)\n",
    "\n",
    "Aphy <- matrix(sample(c(\"a\",\"b\",\"c\"), n*n, replace=T), n,n)\n",
    "colnames(Aphy) <- 1:n\n",
    "rownames(Aphy) <- tree$tip.lab\n",
    "\n",
    "gheatmap(\n",
    "    ggtree(tree) + geom_tiplab() + ggtitle(\"Tree and Aphy\"),\n",
    "    Aphy\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "ir"
  },
  "language_info": {
   "codemirror_mode": "r",
   "file_extension": ".r",
   "mimetype": "text/x-r-source",
   "name": "R",
   "pygments_lexer": "r",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
